Conceptually, extending the Ed-Fi Data Standard is easy: you simply add an entity or element, specify its properties, and specify where the extension fits in the data model.
Practically, however, extensions are challenging: the extensions you model need to be expressed in SQL script form for use in the ODS, expressed in XSD form for use in bulk loading scenarios, and so forth. Any extensions should be harmonized such that the properties you define are aligned throughout the technology: character length limits in the ODS should match character lengths in the XSD, fields required in the data store should be required in the bulk data definitions, and so on.
A Simple Language
The MetaEd IDE supports that work by allowing analysts and developers to write extensions using a simple language. Here's a snippet of the language showing how the FirstName element is defined in the Ed-Fi core data model:
Shared String FirstName 
documentation "A name given to an individual at birth, baptism, or during another naming ceremony, or through legal change."
min length 1
max length 75
If you look at the Ed-Fi technical artifacts, you'll find that Student.Name.FirstName in the Ed-Fi Core XSD is a string with a minLength of 1 and maxLength of 75 characters. Similarly, the Student.FirstName field in the ODS / API database is an NVARCHAR with a length of 75. The simple statement above in the MetaEd Language is what drives those definitions in the Ed-Fi core technical artifacts.
The MetaEd IDE uses the language expression to generate technical artifacts like SQL scripts, extensions to the Ed-Fi Core XSD, Interchange XSD, and so forth.
An Integrated Environment
The MetaEd IDE provides users with a lightweight integrated development environment:
MetaEd IDE features include:
An integrated build experience
A lightweight, integrated deployment experience
Simple install and simpler update
The language is well-documented, and there's even a Cookbook to help with common scenarios.