The Metis have implemented the following marcos for components development:
contract: to define the contract following metis contract standard.
import: to generate code to implement the components.
metis: to define the metis component.
stub: to implement stub in metis.
reentrancy_guard: helper macro for the reentrancy_guard component.
supports: helper macro for the ERC165 supports api.
hash: to calculate the hash of a string during compilation.
selector_id: to calculate the selector_id of a message.