Describe object shapes with required, optional, and readonly properties; extend and merge interfaces; compare with type aliases and use index signatures.