@Giorgio-Chiodi thanks

For now @psychobunny suggested to store JSON data in the post content. This will work if the post data is filtered for client display, and read for updates when sent to the server. This can be used to maintain a separate index of objects described in posts. For example, geolocations can be indexed in its own database for optimized queries. A post might have multiple associated geolocations, or several GeoJSON "shapes".

{ hash: { x: 'y', z: 3}, array: [0.5,"b"], number: 0.2 }

Can Categories be considered a special kind of Tag? The main difference I see is that Topics can only appear in one Category though.