Minecart with Furnace

A minecart with furnace is a self-propelling minecart with a furnace inside. Minecarts with furnace will propel in a given direction and pause when the track leads in another direction. They are largely obsolete because of powered rails, which can push minecarts faster and without using any fuel at all.

Obtaining
Minecarts with furnaces cannot be retrieved by attacking them, as they will just drop a minecart and a furnace. Still, they are renewable since the player just has to go through the trouble of recrafting them.

Usage
Furnace minecarts are placed the same as other minecarts. It does not have a visible interface with slots, like a furnace does.

Furnace minecarts can only be powered towards north-east, south-east, south-west, or north-west. This is done by feeding fuel (coal or charcoal) into the furnace minecart with the button while facing one of these directions. The fuel will immediately be consumed. Any piece of fuel, added at any time, will increase the total range by an additional 3600 ticks (which is equal to 180 seconds or 3 minutes). Using the button with anything other than coal or charcoal in the main hand will move for a few blocks without consuming the item in hand. The minecart will not break when it runs out of fuel.

When powered, minecarts with furnace will cover 240m per minute (about 4 m/s, slightly slower than walking speed) or 720m per piece of coal. They will not accelerate when going downhill or on active powered rails, and they will not slow down when going uphill, on unactive powered rails, or when pushing or pulling other minecarts.

Minecarts with furnace can climb up steep inclines while pushing other minecarts for as long as they have fuel. If a minecart with furnace reaches a slope while pulling another minecart, the pulled minecart will be jettisoned forward so it can be pushed along the slope instead of pulled.

When the furnace minecart reaches a piece of track facing a direction it wasn't powered for, the minecart will lose power and come to pause after 11±1 blocks, waiting for the player to redirect it with the button. The direction the minecart is powered for changes whenever a player presses while facing the needed direction, as long as the furnace minecart is on rails.

A furnace minecart can be made to pull up to four other minecarts by first shunting them together against a wall, and then powering the furnace in the other direction. All minecarts in this train will move at the constant speed of the furnace minecart. These shunts are fragile and easily come undone. Pulling a minecart with TNT will make it explode.

When a minecart with furnace bumps into another minecart or multiple minecarts, the other minecarts will be pushed forward with great speed. The furnace minecart will continue on with its own speed. Because of this speed difference, some of the minecarts may end up inside unloaded chunks on straight tracks.

When two powered minecarts with furnace are overlapping, they will keep going in any direction (not just the powered direction), and even continue moving or pushing indefinitely after they run out of fuel, even uphill. In this formation, they do lose the ability to pull other minecarts, and they can lose contact in hairpin turns.

Properties
The coal is not stored as an item in the Entity, but in the object data in the fuel property as a time in ticks. Fuel is a short value, i.e. a maximum of 32767 ticks, which is less than 30 minutes. However, alone doesn't make it go since it doesn't have a direction. It can be right-clicked on a track to give it a direction, or it can be summoned with the properties PushX and PushZ set, which are responsible for the direction. Note that the  property every entity has will allow you to move the minecart, but it won't give the minecart the direction it needs to move on its own.

Data values
Minecarts with furnace have entity data associated with them that contain various properties of the entity.

Trivia

 * The minecart with furnace is excluded from Bedrock Edition and New Nintendo 3DS Edition on purpose. In a tweet, Jeb considered removing it from Java Edition.