Architectural Alternatives on how to "publish" (create an immutable, publicly readable version/copy) of an entity:
create a copy as a new entity (nobody likes this approach)
downside: entity appears twice in search results
create a copy into something that's not an Entity (e.g. into HTML) (a long term software project)
change the give read-only ACL (don't move to new folder)
downside: cascade delete counteracts immutability (but might work around by walking tree upon move or delete request and stopping if published entity is descendent. This has other repercussions, e.g. locking down an entire tree)
move to new folder ("Published"), give RO ACL (This seems to be the leading option.)
downside: lose context (but maybe can recreate using references or Activities)
create a new version, remove ability to modify old versions; previous version becomes publication
downside: only annotations and data file are currently versioned