Actually I think we should leave package_name not null, and allow for table_name and id_column to both be null or both be not null.
acs_object_type.new() sets the package_name to the object type if "null" is passed in and I don't think we should touch the semantics here ... letting it be null wouldn't break code but would require work on package_instantiate_object and similiar API code and since it's already being forced to a package name ... let's keep that.
Just my thinking ...