I see that the _category field is blank for application tables (_tbl-type = "T"). I also note that it is writable and the written data will be exported with a CATEGORY identifier in a .df.
Is it considered accepted practice for end users or APs to write to the _category field for application tables?
Yes. You will see that we have filled in the category string for all the schema tables, vsts, sql view definitions, etc. You can do similarly with your tables. Part of the motivation for adding this was so that you could tag tables with some strings that identifies which of your major modules need them.
I don't think this is documented anywhere. Nor is the metaschema in general, apart from conference talks you have given. Is this a conscious decision to give the product team the freedom to innovate and change without breaking documented functionality? Or do you think it's possible we'll see metaschema documentation at some point in the future?
I don't know why it was not documented in the beginning. It is certainly nothing that should be kept secret. I will try to find time to write more about it in the future.
By the way I should say that I think the _category field is a great addition to the product. Not only because it allows the schema to be somewhat self-documenting but also because of the provided values for the system tables.
In the past I tried to manually categorize the various system tables as best I could but it is nice to have a comprehensive and correct list for free.
On a related note, does anyone know if and when bug OE00227977 ("Difference in OE11 schema after OE10 database conversion") got fixed?
OE00227977 was fixed in 11.2.0 and 11.3.0.