@J12t @nutomic From what I could see, you get two type-safe structs for each AP object type, one is the database representation that can be persisted and the other is the JSON-LD representation that comes off HTTP and can be hydrated. Then you add logic / actions on top of these. It’s clearly defined in the Rust library with an “Object” trait that handles going back and forth between DB and JSON-LD. Also Lemmy is a real product; I was just trying to learn AP.