Merge pull request #852 from Stuk/metadata-ts

Consolidate metadata types and expose OnUpdateCallback