Properly
Problem
Landlord operations mix money, vendors, documents, properties, units, and tax season exports. The dangerous failure mode is cross-account leakage.
Core decision
Properly uses tenant-scoped request context and Postgres Row Level Security so account isolation does not depend only on route-level filtering.
Money is represented in integer cents. Files use private object storage paths and validation before they become trusted application records.
Tradeoff
The product is built in vertical slices. Each slice needs API behavior, UI, tenancy, validation, and tests before it counts as done.