title: Microsoft Avro serializer is mangling provided schemas
body: <p>I'm trying to write out Avro files, and having some real trouble with the serialization.  I'm using <a href="https://www.nuget.org/packages/Microsoft.Avro.Core/0.1.0" rel="nofollow noreferrer">Microsoft.Avro.Core</a>, and recently discovered that when I give it a schema containing a <code>type</code> with an associated <code>logicalType</code>, it will inexplicably extract the inner <code>type</code> and use that to replace it!  This means that my <code>DateTime</code> declaration of <code>&quot;type&quot;: {&quot;type&quot;: &quot;long&quot;, &quot;logicalType&quot;: &quot;timestamp-micros&quot;}</code> is now a simple <code>&quot;type&quot;: &quot;long&quot;</code>, which the recipient is unable to interpret properly.</p>
  <p>If it were simply doing this internally to understand what data types it's working with, that would be one thing.  But this mangled schema is <em>actually being written to the output file,</em> which is completely incorrect behavior.  Does anyone know a way to fix or work around this?</p>
  <p>(And yes, the library hasn't been updated in 5 years and is probably completely unsupported.  But it was the only .NET Avro serializer I could find that fulfills one crucial requirement: allowing me to work with arbitrary types not known at compile-time.  Everything else seems to want to only use generic serializers of type <code>T</code>, but my use case can't provide that <code>T</code>.  So I can't abandon this library for something better unless there actually is something better that I can use.  But if there is, I'd be open to it.)</p>