While a large part of the implementation can be in Rust, users will need to write the entry point in GDScript to work around a bug in the engine that true abstract classes are not differentiated from classes that are intended to be extended by scripts.