self-describing